---
title: SelectChangeEngine 选择变更引擎
icon: Focus
relatedFile: app/src/core/service/controlService/keyboardOnlyEngine/selectChangeEngine.tsx
---

该服务主要负责处理图谱中节点的选择变更逻辑，尤其是在仅通过键盘进行操作的场景下。它允许用户通过方向键在节点之间进行导航选择，并支持基于连接关系的扩散选择。此外，它还提供视觉反馈以增强用户体验。

## API 方法

### `selectUp(addSelect?: boolean)`

用于向上方向选择节点。如果 `addSelect` 为 `true`，则在现有选择的基础上添加新选择；否则，替换现有选择。

### `selectDown(addSelect?: boolean)`

用于向下方向选择节点。如果 `addSelect` 为 `true`，则在现有选择的基础上添加新选择；否则，替换现有选择。

### `selectLeft(addSelect?: boolean)`

用于向左方向选择节点。如果 `addSelect` 为 `true`，则在现有选择的基础上添加新选择；否则，替换现有选择。

### `selectRight(addSelect?: boolean)`

用于向右方向选择节点。如果 `addSelect` 为 `true`，则在现有选择的基础上添加新选择；否则，替换现有选择。

### `expandSelect(isKeepExpand?: boolean, reversed?: boolean)`

用于根据节点的连接关系进行扩散选择。
`isKeepExpand` 参数决定扩散后是否保留原有的选择。
`reversed` 参数决定是向前驱节点（`true`）还是向后继节点（`false`）扩散。
